package com.ty.tour.common.enums;

/**
 * 时间枚举
 *
 * @author Caoxiaofeng
 * 2018-10-18
 **/

public enum DateEnum {
    // 工作日(1->星期一，2->星期二 ......)
    MONDAY("1"),
    TUESDAY("2"),
    WEDNESDAY("3"),
    THURSDAY("4"),
    FRIDAY("5"),
    SATURDAY("6"),
    SUNDAY("7"),

    // 日期格式：年月日
    DATE_FORMAT_YYYY("yyyy"),
    DATE_FORMAT_YYYY_MM("yyyy-MM"),
    DATE_FORMAT_YYYY_MM_DD("yyyy-MM-dd"),
    DATE_FORMAT_YYYYMMDD("yyyyMMdd"),
    // 时间格式：年月日时分秒
    DATE_TIME_FORMAT_YYYY_MM_DD_HH_MI("yyyy-MM-dd HH:mm"),
    DATE_TIME_FORMAT_YYYY_MM_DD_HH_MI_SS("yyyy-MM-dd HH:mm:ss"),
    DATE_TIME_FORMAT_YYYY_MM_DD_HH_MI_SS_SSS("yyyy-MM-dd HH:mm:ss.SSS"),

    // 特殊格式：月日时分
    DATE_SPECIAL_YY_MM_DD("yy-MM-dd"),
    DATE_SPECIAL_MM_DD_HH_MI("MM-dd HH:mm"),
    DATE_SPECIAL_HH_MM_SS("HH:mm:ss"),

    // 年月日
    YEAR("year"), MONTH("month"), DAY("day"),
    // 时分秒
    HOUR("hour"), MINUTE("minute"), SECOND("second"), MSEC("msec"),
    // 周
    WEEK("week");

    private String string;

    DateEnum(String string) {
        this.string = string;
    }

    public String getString() {
        return string;
    }

    public static DateEnum parse(String status) {
        for (DateEnum dateEnum : DateEnum.values()) {
            if (dateEnum.name().equals(status)) {
                return dateEnum;
            }
        }
        throw new RuntimeException("unknown status: " + status);
    }
}
